package org.mf.dao;

import java.util.Calendar;
import java.util.Set;

import org.mf.domain.Customer;

import org.skyway.spring.util.dao.JpaDao;

import org.springframework.dao.DataAccessException;

/**
 * DAO to manage Customer entities.
 * 
 */
public interface CustomerDAO extends JpaDao<Customer> {

	/**
	 * JPQL Query - findAllCustomers
	 *
	 */
	public Set<Customer> findAllCustomers() throws DataAccessException;

	/**
	 * JPQL Query - findAllCustomers
	 *
	 */
	public Set<Customer> findAllCustomers(int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerById
	 *
	 */
	public Customer findCustomerById(Integer id) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerById
	 *
	 */
	public Customer findCustomerById(Integer id, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByNameContaining
	 *
	 */
	public Set<Customer> findCustomerByNameContaining(String name) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByNameContaining
	 *
	 */
	public Set<Customer> findCustomerByNameContaining(String name, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByCreatedAt
	 *
	 */
	public Set<Customer> findCustomerByCreatedAt(java.util.Calendar createdAt) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByCreatedAt
	 *
	 */
	public Set<Customer> findCustomerByCreatedAt(Calendar createdAt, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByUpdatedAt
	 *
	 */
	public Set<Customer> findCustomerByUpdatedAt(java.util.Calendar updatedAt) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByUpdatedAt
	 *
	 */
	public Set<Customer> findCustomerByUpdatedAt(Calendar updatedAt, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByName
	 *
	 */
	public Set<Customer> findCustomerByName(String name_1) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByName
	 *
	 */
	public Set<Customer> findCustomerByName(String name_1, int startResult, int maxRows) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByPrimaryKey
	 *
	 */
	public Customer findCustomerByPrimaryKey(Integer id_1) throws DataAccessException;

	/**
	 * JPQL Query - findCustomerByPrimaryKey
	 *
	 */
	public Customer findCustomerByPrimaryKey(Integer id_1, int startResult, int maxRows) throws DataAccessException;

}